COVID-19 ဗိုင်းရပ်၏အမည်မှာ Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) ဖြစ်ပြီးထိုဗိုင်းရပ်ကြောင့်ဖြစ်သောရောဂါကို coronavirus disease(COVID-19) ဟုခေါ်ပါသည်။ Corona ဟူသောစကားလုံးသည် Latin ဘာသာဖြင့်ရေးသားထားခြင်းဖြစ်ပြီး English လို Crown ဟုအဓိပ္ပါယ်ရပါသည်။ ဗိုင်းရပ်၏ပုံသဏ္ဍပေါ်အခြေခံ၍ရေးသားခြင်းဖြစ်ပါသည်။ ဗိုင်းရပ်၏အမည်ပေးခြင်းကို International Committee on Taxonomy of Viruses (ICTV) မှပြုလုပ်ပြီး ရောဂါ၏အမည်ပေးခြင်းကို WHO မှပြုလုပ်ခြင်းဖြစ်ပါသည်။

WHO'S NAMING-and-the-virus-that-causes-it)

WHO-Coronavirus

MOHS

COVID-19 ရောဂါနှင့်ပတ်သက်၍လေ့လာတွေ့ရှိမှု့အသစ်

COVID-19 ရောဂါကြောင့်ဖြစ်ပေါ်လာသောရောဂါလက္ခဏာအသစ်(COVID toes)

အထက်ပါ website များမှတဆင့်သတင်းအချက်အလက်များရယူနိင်ပါသည်။


In [1]:
%store -r __importing_Lib
In [2]:
__importing_Lib
matplotlib inline backend and ggplot style are used.
Mplotlib version : 3.1.3
Numpy version	 : 1.18.1
Pandas version	 : 1.0.1
Seaborn version	 : 0.10.0
Folium version	 : 0.10.1
Other imported is: Waffle      
		 : datetime      
		 : base64      
		 : Json
In [3]:
from folium import plugins
from graphviz import Digraph
import matplotlib.gridspec as gridspec
import requests
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz2.38/bin/'
mpl.rcParams['xtick.minor.size'] = 0
mpl.rcParams['xtick.minor.width'] = 0
mpl.rcParams['ytick.minor.size'] = 0
mpl.rcParams['ytick.minor.width'] = 0
plt.rcParams['font.weight'] = 'bold'
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['axes.titleweight'] = 'bold'


In [4]:
covid_df = pd.read_excel('covid/COVID-19-2020-06-07.xlsx', parse_dates=['dateRep'])
covid_df.rename(columns={'countryterritoryCode': 'Country_Code'}, inplace=True)
print(covid_df.shape)
cc_dict = {
            'Anguilla': 'AIA', 'Bonaire, Saint Eustatius and Saba': 'BES',
            'Czechia': 'CZE', 'Falkland_Islands_(Malvinas)': 'FLK'
          }
covid_df.query('countriesAndTerritories!=["Cases_on_an_international_conveyance_Japan"]', inplace=True)
covid_df.rename(columns={'countriesAndTerritories': 'Country_Name'}, inplace=True)
for c_name, c_code in cc_dict.items():
    covid_df.loc[covid_df.Country_Name==c_name, 'Country_Code'] = c_code
print(covid_df.shape)
start_date = covid_df.dateRep.min().strftime('%d-%m-%Y')
last_date = covid_df.dateRep.max().strftime('%d-%m-%Y')
print(f'start_date: {start_date}', f'last_date : {last_date}', sep='\n')
total_death = covid_df.deaths.sum()
total_cases = covid_df.cases.sum()
overall_death_rate = total_death / total_cases * 100
print(f'total_death: {total_death:7,}\ntotal_cases: {total_cases:7,}\noverall_death_rate: {overall_death_rate:.3f}%')
covid_df.head()
(21965, 11)
(21901, 11)
start_date: 31-12-2019
last_date : 07-06-2020
total_death: 398,629
total_cases: 6,835,027
overall_death_rate: 5.832%
Out[4]:
dateRep day month year cases deaths Country_Name geoId Country_Code popData2018 continentExp
0 2020-06-07 7 6 2020 582 18 Afghanistan AF AFG 37172386.0 Asia
1 2020-06-06 6 6 2020 915 9 Afghanistan AF AFG 37172386.0 Asia
2 2020-06-05 5 6 2020 787 6 Afghanistan AF AFG 37172386.0 Asia
3 2020-06-04 4 6 2020 758 24 Afghanistan AF AFG 37172386.0 Asia
4 2020-06-03 3 6 2020 759 5 Afghanistan AF AFG 37172386.0 Asia


In [5]:
region_df = pd.read_csv('life_expectancy/Metadata_Country.csv', usecols=[0, 1, 2])
region_df.columns = 'Country_Code', 'Region', 'IncomeGroup'
region_df.dropna(subset=['IncomeGroup'], inplace=True)
region_df.head()
Out[5]:
Country_Code Region IncomeGroup
0 ABW Latin America & Caribbean High income
1 AFG South Asia Low income
2 AGO Sub-Saharan Africa Lower middle income
3 ALB Europe & Central Asia Upper middle income
4 AND Europe & Central Asia High income


In [6]:
region_dict = {'Anguilla': ['Latin America & Caribbean', 'High income'],
               'Bonaire, Saint Eustatius and Saba': ['Latin America & Caribbean', 'High income'],
               'Falkland_Islands_(Malvinas)': ['Latin America & Caribbean', 'High income'],
               'Guernsey': ['Europe & Central Asia', 'High income'],
               'Holy_See': ['Europe & Central Asia', 'High income'],
               'Jersey': ['Europe & Central Asia', 'High income'],
               'Montserrat': ['Latin America & Caribbean', 'Upper middle income'],
               'Taiwan': ['East Asia & Pacific', 'High income']
               }
In [7]:
merge_df = covid_df.merge(region_df, on='Country_Code', how='left')
for cname, (reg, level) in region_dict.items():
    merge_df.loc[merge_df.Country_Name==cname, ['Region', 'IncomeGroup']] = reg, level
col_to_keep = ['dateRep', 'cases', 'deaths', 'Country_Name', 'Region', 'IncomeGroup']
merge_df = merge_df.loc[:, col_to_keep]
merge_df.head()
Out[7]:
dateRep cases deaths Country_Name Region IncomeGroup
0 2020-06-07 582 18 Afghanistan South Asia Low income
1 2020-06-06 915 9 Afghanistan South Asia Low income
2 2020-06-05 787 6 Afghanistan South Asia Low income
3 2020-06-04 758 24 Afghanistan South Asia Low income
4 2020-06-03 759 5 Afghanistan South Asia Low income


In [8]:
country_df = (merge_df.groupby(['Country_Name', 'IncomeGroup'])
                      .agg({'cases': 'sum', 'deaths': 'sum'})
                      .reset_index([0, 1]))
country_df.Country_Name.replace({'Democratic_Republic_of_the_Congo': 'Congo', 'United_States_of_America': 'USA'},
                                inplace=True)
country_df['c_proportion'] = country_df.cases / total_cases * 100
country_df['d_proportion'] = country_df.deaths / total_death * 100
country_df['death_rate'] = country_df.deaths / country_df.cases * 100
country_df.sort_values(['d_proportion', 'c_proportion', 'death_rate'], ascending=False).head()
Out[8]:
Country_Name IncomeGroup cases deaths c_proportion d_proportion death_rate
200 USA High income 1920061 109802 28.091491 27.544910 5.718672
197 United_Kingdom High income 284868 40465 4.167767 10.151043 14.204825
27 Brazil Upper middle income 645771 35026 9.447966 8.786616 5.423904
98 Italy High income 234801 33846 3.435261 8.490602 14.414760
69 France High income 153634 29142 2.247745 7.310557 18.968458


In [9]:
case_name_lst = []
case_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
income_grp = country_df.groupby('IncomeGroup')
for g_name, grp in income_grp:
    temp = grp.sort_values('cases').tail()
    case_name_lst.append(temp.Country_Name.iloc[-1])
    case_quan_lst.append(temp.cases.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2 if g_name=='Upper middle income' else ax3
              if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.cases, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
    
    for i, v in enumerate(temp.cases):
        if g_name=='High income':
            x = v-340_000 if v > 1_700_000 else v-270_000 if v > 280_000 else v+10_000
            
        elif g_name=='Upper middle income':
            x = v-95_000
            
        elif g_name=='Lower middle income':
            x = v-38_000 if v > 240_000 else v-31_000 if v > 60_000 else v-29_000
        
        else:
            x = v-2_600 if v > 19_000 else v-2_100
            
        ax.text(x, i-0.1, f'{v:,}', color='white' if x < v else 'k')

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of all countries are analysed by IncomeGroup from {start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_01', fontdict={'size':'x-large', 'ha':'center'});


In [10]:
cases_df = country_df.set_index('Country_Name').cases.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(cases_df.index, cases_df, color='steelblue')
for i, v in enumerate(cases_df):
    x = (v-185_000 if v > 1_800_000 else v-155_000 if v > 200_000 else v-150_000) 
    ax.text(x, i-0.1, f'{v:,}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of patients\nFig_02')
ax.set_title(f'\nCOVID_19 patients of top ten countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [11]:
top_cases = (country_df.sort_values('cases', ascending=False, ignore_index=True)
                        [['Country_Name', 'cases', 'c_proportion']].head(3))
fcn, scn, tcn = top_cases.Country_Name
fcq, scq, tcq = top_cases.cases
fcp, scp, tcp = top_cases.c_proportion
top_cases
Out[11]:
Country_Name cases c_proportion
0 USA 1920061 28.091491
1 Brazil 645771 9.447966
2 Russia 458689 6.710859


In [12]:
death_name_lst = []
death_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths').tail()
    death_name_lst.append(temp.Country_Name.iloc[-1])
    death_quan_lst.append(temp.deaths.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.deaths, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for i, v in enumerate(temp.deaths):
        if g_name=='High income':
            x = v-16_000 if v > 100_000 else v-13_500
            
        elif g_name=='Upper middle income':
            x = v-4_300 if v > 10_000 else v-3_700
            
        elif g_name=='Lower middle income':
            x = v-750 if v > 1_000 else v-530

        else:
            x = v-25 if v > 100 else v-18
        ax.text(x, i-0.1, f'{v:,}', color='white')

    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nDeaths of COVID-19 Patients of all countries are analysed by IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_03', fontdict={'size':'x-large', 'ha':'center'});


In [13]:
deaths_df = country_df.set_index('Country_Name').deaths.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(deaths_df.index, deaths_df, color='steelblue')
for i, v in enumerate(deaths_df):
    x = v-9_000 if v > 100_000 else v-7_500 if v > 10_000 else v-6_500
    ax.text(x, i-0.1, f'{v:,}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of deaths\nFig_04')
ax.set_title(f'\nTen highest death toll countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [14]:
top_deaths = (country_df.sort_values('deaths', ascending=False, ignore_index=True)
                         [['Country_Name', 'deaths', 'd_proportion']].head(3))
fdn, sdn, tdn = top_deaths.Country_Name
fdq, sdq, tdq = top_deaths.deaths
fdp, sdp, tdp = top_deaths.d_proportion
top_deaths
Out[14]:
Country_Name deaths d_proportion
0 USA 109802 27.544910
1 United_Kingdom 40465 10.151043
2 Brazil 35026 8.786616


In [15]:
drate_name_lst = []
drate_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths', ascending=False).head(10).sort_values('death_rate').tail()
    drate_name_lst.append(temp.Country_Name.iloc[-1])
    drate_quan_lst.append(temp.death_rate.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.death_rate, color='steelblue')
    ax.set_xlabel('Death rate')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
    
    for i, v in enumerate(temp.death_rate):
        if g_name == 'High income':
            x = v-2.7
            
        elif g_name == 'Upper middle income':
            x = v-1.68 if v > 10 else v-1.45
        
        elif g_name == 'Low income':
            x = v-3.4 if v > 10 else v-2.9
            
        else:
            x = v-0.74
            
        ax.text(x, i-0.1, f'{v:.2f}%', color='white')

plt.subplots_adjust(top=0.85, wspace=0.33, hspace=0.5)
fig.text(.5, 0.925, f'\nDeath rate of COVID-19 Patients of top five countries for each IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_05', fontdict={'size':'x-large', 'ha':'center'});


In [16]:
death_rate_df = country_df.sort_values('deaths').tail(10)
death_rate_ten = death_rate_df.set_index('Country_Name').death_rate.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(death_rate_ten.index, death_rate_ten, color='steelblue')
for i, v in enumerate(death_rate_ten):
    x = v-1.48 if v > 11 else v-1.28
    ax.text(x, i-0.1, f'{v:.2f}%', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
ax.set_xlabel('Death rate\nFig_06')
ax.set_title(f'\nTen highest death rate countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [17]:
drate_df = death_rate_ten.tail(3)
trn, srn, frn = drate_df.index
tr, sr, fr = drate_df
print(f'USA: {death_rate_ten["USA"]}')
drate_df
USA: 5.718672479676426
Out[17]:
Country_Name
Italy      14.414760
Belgium    16.217497
France     18.968458
Name: death_rate, dtype: float64


In [18]:
color_dict = {'cases': 'orange', 'deaths': 'red', 'death_rate': 'steelblue'}
cumsum_df = covid_df.groupby('dateRep')[['cases', 'deaths']].sum().cumsum()
cumsum_df.query('deaths > 0', inplace=True)
cumsum_df['death_rate'] = cumsum_df.deaths / cumsum_df.cases * 100
cumsum_dmin = cumsum_df.index.min()
cumsum_dmax = cumsum_df.index.max()
cumsum_tdelta = pd.Timedelta('3 days')
temp_first_date = cumsum_dmin.strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(cumsum_df.index, cumsum_df.death_rate, color='steelblue')
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_ylabel('Death rate')
ax.set_xlabel('Date\nFig_07')
ax.set_title(f'\nCOVID-19 Death rate for the whole world from {temp_first_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([cumsum_dmin-cumsum_tdelta, cumsum_dmax+cumsum_tdelta])
fig.autofmt_xdate(rotation=45);
In [19]:
ax.get_xlim()
Out[19]:
(737432.0, 737586.0)
In [20]:
max_day = cumsum_df.death_rate.idxmax()
min_day = cumsum_df.death_rate.idxmin()
max_drate = cumsum_df.loc[max_day].death_rate
min_drate = cumsum_df.loc[min_day].death_rate
print(min_day.strftime('%d-%m-%Y'), min_drate)
print(max_day.strftime('%d-%m-%Y'), max_drate)
pd.concat([cumsum_df.head(1), cumsum_df.tail(1)])
20-01-2020 1.2552301255230125
25-04-2020 7.281853490878204
Out[20]:
cases deaths death_rate
dateRep
2020-01-11 59 1 1.694915
2020-06-07 6835027 398629 5.832150


In [21]:
period_df = covid_df.groupby('dateRep').agg({'cases': 'sum', 'deaths': 'sum'})
cases_max_day = period_df.cases.idxmax()
deaths_max_day = period_df.deaths.idxmax()
period_dmin = period_df.index.min()
period_dmax = period_df.index.max()
period_tdelta = pd.Timedelta('3 days')
print('Cases:', cases_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[cases_max_day].cases:>8,}')
print('Deaths:', deaths_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[deaths_max_day].deaths:>7,}')
period_df.info()
period_df.head()
Cases: 07-06-2020  129,389
Deaths: 16-04-2020  10,520
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 160 entries, 2019-12-31 to 2020-06-07
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   cases   160 non-null    int64
 1   deaths  160 non-null    int64
dtypes: int64(2)
memory usage: 7.8 KB
Out[21]:
cases deaths
dateRep
2019-12-31 27 0
2020-01-01 0 0
2020-01-02 0 0
2020-01-03 17 0
2020-01-04 0 0
In [22]:
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(period_df.cases, color='steelblue')
ax.plot(period_df.deaths, color='red')
ax.semilogy()
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_yticklabels([0.01, 0.1, '1', '10', '100', '1,000', '10,000', '100,000'])
ax.set_xlabel('Date\nFig_08')
ax.set_title(f'\nInfected and death of people around the world by COVID_19 from {start_date} to {last_date}', y=1.035)
ax.set_ylabel('Number of people')
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([period_dmin-period_tdelta, period_dmax+period_tdelta])
fig.autofmt_xdate(rotation=45);


Animated Bubble plot for COVID-19 for weekly


  1. low income \$1,025 or less
  2. lower middle income \$1,026 and \$3,995
  3. Upper middle income \$3,996 and \$12,375
  4. High income \$12,376 or more

Classifying countries by income(World Bank)

COVID-19 ရောဂါကူးစက်ခံရသူ၊ သေဆုံးသူများ၏အရေအတွက်နှင့်ပတ်သက်သော သတင်းအချက်အလက်ကို European Centre for Disease Prevention and Control (ECDC) မှရယူခဲ့ပါသည်။

31-12-2019 မှ 07-06-2020 အထိတစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 6,835,027 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 398,629 ယောက်ဖြစ်ပါသည်။ ပျမ်းမျှသေဆုံးနှုန်းမှာ 5.83% ဖြစ်ပါသည်။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကူးစက်ခံရမှု့ကိုလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 1,920,061 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 645,771 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 246,628 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 19,551 ယောက်ဖြင့် Afghanistan တို့သည်ရောဂါကူးစက်ခံရမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_01)။

တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်လျှင် ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 1,920,061 (28.09%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ Brazil နှင့် Russia တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 645,771 (9.45%) နှင့် 458,689 (6.71%) ယောက်တို့ဖြစ်ပါသည်(Fig_02)။

COVID-19 ရောဂါကြောင့်သေဆုံးမှု့အား ဝင်ငွေအုပ်စုအလိုက်လေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 109,802 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 35,026 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 6,929 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 327 ယောက်ဖြင့် Afghanistan တို့သည်သေဆုံးမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_03)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အား တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်တွင် သေဆုံးမှု့အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 109,802 (27.54%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယသေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ United_Kingdom နှင့် Brazil တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 40,465 (10.15%) နှင့် 35,026 (8.79%) ယောက်တို့ဖြစ်ကြပါသည်(Fig_04)။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် နိင်ငံအလိုက်သေဆုံးနှုန်းအားလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် 18.97% ဖြင့် France မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် 11.89% ဖြင့် Mexico မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် 5.92% ဖြင့် Sudan မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် 23.68% ဖြင့် Yemen တို့သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_05)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် ထိုတိုင်းပြည်တစ်ခုချင်းအလိုက်သေဆုံးနှုန်းအားတွက်ထုတ်ကြည့်ရာတွင် France သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်ဖြစ်ပြီး 18.97% ဖြစ်ပါသည်။ ထို့နောက် 16.22% ဖြင့် Belgium သည်လည်းကောင်း၊ 14.41% ဖြင့် Italy တို့သည်ဒုတိယနှင့်တတိယသေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ကြောင်းလေ့လာတွေ့ရှိရသည်။ COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်ဖြစ်သော USA ၏သေဆုံးနှုန်းမှာ 5.72% ဖြစ်ပါသည်(Fig_06)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကြောင့်အနည်းဆုံးပျမ်းမျှသေဆုံးနှုန်းမှာ 20-01-2020 တွင် 1.26% ဖြစ်ပြီးအမြင့်သေဆုံးနှုန်းမှာ 25-04-2020 တွင် 7.28% ကြောင်းလေ့လာတွေ့ရှိရပါသည်(Fig_07)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးဆက်ခံရသူနှင့်သေဆုံးသူအရေအတွက်အား နေ့အလိုက်လေ့လာကြည့်ရာတွင် 07-06-2020 သည်ရောဂါကူးဆက်ခံမှု့အများဆုံးနေ့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 129,389 ယောက်ဖြစ်ပါသည်။ 16-04-2020 သည်သေဆုံးသူအရေအတွက်အများဆုံးနေ့ဖြစ်ခဲ့ပြီး 10,520 ယောက်သေဆုံးကြောင်းလေ့လာတွေ့ရှိရပါသည်(Fig_08)။


In [23]:
myan_df = pd.read_excel('covid\covid_19.xlsx', index_col='Case_no').drop('Is_Checked', axis=1)
myan_df.Adult.replace({0:'Minor', 1:'Majority'}, inplace=True)
myan_df.Hospital.replace({'South Okkalapa Women & Children Hospital':
                          'South Okkalapa Specialist Hospital'}, inplace=True)
for name in [' Township', ' City', ' Town']:
    myan_df.Address = myan_df.Address.str.replace(name, '')
m_start_date = myan_df.Confirm_date.min().strftime('%d-%m-%Y')
m_last_date = myan_df.Confirm_date.max().strftime('%d-%m-%Y')
number_of_patients = myan_df.Age.count()
number_of_periods = (covid_df.dateRep.max() - myan_df.Confirm_date.min()).days + 1
average_rate = number_of_patients / number_of_periods
age_min = myan_df.Age.min()
age_max = myan_df.Age.max()
print(f'start_date: {m_start_date}', f'last_date case found : {m_last_date}', sep='\n')
print(f'Total number of patients: {number_of_patients}')
print(f'Total number of periods: {number_of_periods}')
print(f'Average confirm cases per day: {average_rate:.2f}')
print(f'Minimum_age: {age_min}', f'Maximum_age : {age_max}', sep='\n')
myan_df.head() 
start_date: 23-03-2020
last_date case found : 07-06-2020
Total number of patients: 242
Total number of periods: 77
Average confirm cases per day: 3.14
Minimum_age: 1.5
Maximum_age : 87.0
Out[23]:
Age Gender Adult Is_Travel_History Country Hospital Admission_date Confirm_date Condition Address State Coordinate Lat Long Infection_type Case_relative Case_relative_no Is_Q Is_citizen Remark
Case_no
1 36.0 Male Majority Yes USA Tedim General Hospital 2020-03-21 2020-03-23 Recovery Tedim Chin 23.3689, 93.6508 23.3689 93.6508 Foreign No - No Yes National
2 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-23 Recovery Hmawbi Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - Yes Yes National
3 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-25 Recovery Insein Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National
4 33.0 Male Majority Yes USA Kandaw Nadi Hospital 2020-03-25 2020-03-27 Recovery Chanmyathazi Mandalay 21.9454, 96.1123 21.9454 96.1123 Foreign No - No Yes Dual citizen
5 69.0 Male Majority Yes Australia, Singapore Wai Bar Gi Hospital 2020-03-25 2020-03-27 Death Mingala Taungnyunt Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National


In [24]:
cw_df = myan_df.set_index('Confirm_date')
cw_df = cw_df.resample('W').Age.count()
cw_df.name = 'Total'
pop_tdelta = pd.Timedelta('6 days')
pop_min_ldate = cw_df.idxmin()
pop_min_sdate = pop_min_ldate - pop_tdelta
wmin_pop = cw_df.loc[pop_min_ldate]
pop_max_ldate = cw_df.idxmax()
pop_max_sdate = pop_max_ldate - pop_tdelta
wmax_pop = cw_df.loc[pop_max_ldate]

print('Minimum', f'Start_date: {pop_min_sdate.strftime("%d-%m-%Y")}',
      f'End_date{":":>3} {pop_min_ldate.strftime("%d-%m-%Y")}',
      f'Patients{":":>3} {wmin_pop}', sep='\n')
print('Maximum', f'Start_date: {pop_max_sdate.strftime("%d-%m-%Y")}',
      f'End_date{":":>3} {pop_max_ldate.strftime("%d-%m-%Y")}',
      f'Patients{":":>3} {wmax_pop}', sep='\n')
cw_df.index = cw_df.index.strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(cw_df.index, cw_df, color='steelblue')
for tup in cw_df.reset_index().itertuples():
    x = tup.Index-0.06 if tup.Total < 10 else tup.Index-0.1
    y = tup.Total
    ax.text(x, (y-3.5 if y > 4 else y-3), f'{tup.Total}', color='white')
ax.set_xlim(-0.6, len(cw_df)-0.4)
ax.set_ylabel('Number of Patients')
ax.set_xlabel('Fig_09')
ax.set_title(f'COVID-19 Weekly total confirm cases for Myanmar from {m_start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
fig.autofmt_xdate(rotation = 45);
Minimum
Start_date: 11-05-2020
End_date  : 17-05-2020
Patients  : 4
Maximum
Start_date: 13-04-2020
End_date  : 19-04-2020
Patients  : 72


In [25]:
n = 5
count, bin_edges = np.histogram(myan_df.Age, bins=n)
age_idx = count.argsort()
portion = count/count.sum() * 100
print(myan_df.Age.sort_values().values, count, bin_edges, portion, sep='\n')
gender_df = myan_df.Gender.value_counts().reset_index()
gender_df.columns = 'Gender', 'Total'
gender_df['Proportion'] = gender_df.Total / number_of_patients * 100
m_prop = gender_df.query('Gender=="Male"').iloc[0,-1]
f_prop = gender_df.query('Gender=="Female"').iloc[0,-1]
gender_df
[ 1.5  4.   7.   8.   9.  10.  10.  12.  15.  17.  18.  18.  18.  18.
 18.  19.  19.  19.  19.  20.  20.  20.  20.  20.  20.  20.  21.  21.
 21.  21.  21.  22.  22.  22.  22.  23.  23.  23.  23.  23.  23.  24.
 24.  24.  24.  24.  24.  24.  24.  24.  24.  25.  25.  25.  25.  26.
 26.  26.  26.  26.  26.  26.  26.  27.  27.  27.  27.  28.  28.  28.
 28.  28.  28.  28.  29.  29.  29.  29.  29.  29.  29.  30.  30.  30.
 30.  31.  31.  31.  31.  31.  31.  31.  31.  31.  31.  32.  32.  32.
 32.  32.  32.  32.  32.  32.  32.  32.  32.  33.  33.  33.  33.  33.
 34.  34.  35.  35.  35.  35.  35.  35.  35.  35.  36.  36.  36.  36.
 36.  37.  37.  38.  38.  38.  38.  38.  38.  38.  38.  39.  39.  39.
 39.  39.  39.  40.  40.  40.  40.  41.  41.  41.  41.  42.  42.  43.
 43.  43.  43.  43.  43.  43.  44.  44.  44.  44.  44.  44.  44.  45.
 45.  45.  45.  45.  46.  46.  46.  47.  47.  47.  47.  47.  48.  48.
 49.  49.  49.  49.  50.  50.  50.  51.  52.  52.  52.  52.  53.  54.
 54.  54.  54.  55.  56.  57.  57.  57.  58.  58.  58.  58.  60.  60.
 60.  60.  61.  61.  62.  62.  63.  63.  63.  63.  63.  63.  65.  65.
 65.  65.  66.  66.  67.  68.  69.  69.  72.  75.  77.  78.  78.  80.
 84.  85.  85.  87. ]
[ 15 107  72  38  10]
[ 1.5 18.6 35.7 52.8 69.9 87. ]
[ 6.19834711 44.21487603 29.75206612 15.70247934  4.1322314 ]
Out[25]:
Gender Total Proportion
0 Male 139 57.438017
1 Female 103 42.561983


In [26]:
adult_df = myan_df.Adult.value_counts().reset_index()
adult_df.columns = 'Adult', 'Total'
adult_df['Proportion'] = adult_df.Total / number_of_patients * 100
maj_prop = adult_df.query("Adult=='Majority'").iloc[0,-1]
min_prop = adult_df.query("Adult=='Minor'").iloc[0,-1]
adult_df
Out[26]:
Adult Total Proportion
0 Majority 232 95.867769
1 Minor 10 4.132231


In [27]:
condition_df = myan_df.Condition.value_counts().reset_index()
condition_df.columns = 'Condition', 'Total'
condition_df.set_index('Condition', inplace=True)
condition_df.loc['Normal', 'Total'] = condition_df.loc['Normal', 'Total'] - 7
condition_df.loc['Recovery', 'Total'] = condition_df.loc['Recovery', 'Total'] + 7
condition_df['Proportion'] = condition_df.Total / number_of_patients * 100
condition_df.reset_index(inplace=True)
_, rq, rec_prop = condition_df.query("Condition=='Recovery'").iloc[0]
_, dq, dth_prop = condition_df.query("Condition=='Death'").iloc[0]
condition_df
Out[27]:
Condition Total Proportion
0 Recovery 156 64.462810
1 Normal 80 33.057851
2 Death 6 2.479339


In [28]:
infection_df = myan_df.Infection_type.value_counts().reset_index()
infection_df.columns = 'Infection_type', 'Total'
infection_df['Proportion'] = infection_df.Total / number_of_patients * 100
loc_prop = infection_df.query("Infection_type=='Local'").iloc[0,-1]
for_prop = infection_df.query("Infection_type=='Foreign'").iloc[0,-1]
infection_df
Out[28]:
Infection_type Total Proportion
0 Local 156 64.46281
1 Foreign 86 35.53719


In [29]:
q_df = myan_df.Is_Q.value_counts().reset_index()
q_df.columns = 'Is_Q', 'Total'
q_df['Proportion'] = q_df.Total / number_of_patients * 100
y_prop = q_df.query("Is_Q=='Yes'").iloc[0,-1]
n_prop = q_df.query("Is_Q=='No'").iloc[0,-1]
q_df
Out[29]:
Is_Q Total Proportion
0 Yes 182 75.206612
1 No 60 24.793388


In [30]:
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6))= plt.subplots(2, 3, figsize=(15, 10))
myan_df.Age.plot.hist(bins=n, xticks=bin_edges, color='steelblue', ax=ax1)
ax1.set_ylabel('Number of patients')
ax1.set_xlim(myan_df.Age.min()-1, myan_df.Age.max()+1)
ax1.yaxis.set_label_coords(-0.13, 0.5)
ax1.set_title('Age of Patients', y=1.035)
xs = ['Gender', 'Adult', 'Condition', 'Infection_type', 'Is_Q']
palettes = {'Gender': ['orange', 'steelblue'], 'Adult': ['orange', 'steelblue'],
            'Condition': ['red', 'green', 'steelblue'], 'Infection_type': ['orange', 'steelblue'],
            'Is_Q': ['orange', 'steelblue']}
axs = [ax2, ax3, ax4, ax5, ax6]
orders = {'Gender': ['Female', 'Male'], 'Adult': ['Minor', 'Majority'],
          'Condition':['Death', 'Recovery', 'Normal'], 'Infection_type': ['Local', 'Foreign'], 
          'Is_Q': ['No', 'Yes']}
titles = {'Gender': 'Gender of Patients', 'Adult': 'Adult of Patients', 'Condition': 'Condition of Patients',
          'Infection_type': 'Infection type of Patients', 'Is_Q': 'Quarantine vs Not'}

for col, ax in zip(xs, axs):
    sns.countplot(col, data=myan_df, palette=palettes[col], ax=ax, order=orders[col])
    ax.set_title(titles[col], y=1.035)
    ax.set(xlabel=None, ylabel=None) if ax!=ax4 else ax.set(xlabel=None, ylabel='Number of patients')
    ax.yaxis.set_label_coords(-0.13, 0.5) if ax==ax4 else None
                          
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.4)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of Myanmar are analysed by each attribute from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_10', fontdict={'size':'x-large', 'ha':'center'});


In [31]:
tsp_df = myan_df.query('State=="Yangon"').Address.value_counts().reset_index()
tsp_df.columns = 'Township', 'Total'
tsp_df.sort_values(['Total', 'Township'], ignore_index=True, inplace=True)
In [32]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(tsp_df.Township, tsp_df.Total, color='steelblue', width=0.9) 
for tup in tsp_df.itertuples():
    x = tup.Index-0.1 if tup.Total < 10 else tup.Index-0.25
    y = tup.Total
    ax.text(x, (y-1.4 if y > 1 else y-0.9), f'{tup.Total}', color='white')
ax.set_xlim(-.8, len(tsp_df)-0.2)
ax.set_ylabel('Number of patients')
ax.set_xlabel('Fig_11')
ax.set_title(f'\nCOVID-19 patients in each area of Yangon from {m_start_date} to {last_date}', y=1.035)
fig.autofmt_xdate(rotation = 45);


In [33]:
rec_df = pd.read_excel('covid\covid_19.xlsx', sheet_name='rel_data', index_col='Case_no')
rec_df.query('Condition=="Recovery"', inplace=True)
rec_df = rec_df.reset_index().drop_duplicates('Case_no').set_index('Case_no')
merge_df = (myan_df[['Confirm_date', 'Age', 'Gender', 'Address', 'State']]
                    .merge(rec_df, left_index=True, right_index=True))
merge_df.drop(['Time', 'Condition'], axis=1, inplace=True)
merge_df['rec_per'] = (merge_df.Date - merge_df.Confirm_date).dt.days
merge_df['age_grp'] = pd.cut(merge_df.Age, 6)
merge_df['rec_mask'] = merge_df.rec_per.apply(lambda x: 'Over_30' if x > 30 else 'Within_30')
avg_rec_periods = merge_df.rec_per.mean()
tot_recovery = len(merge_df)
min_rec = merge_df.rec_per.min()
max_rec = merge_df.rec_per.max()
print(f'Total_recovery_patients: {tot_recovery:}')
print(f'average_recovery_periods: {avg_rec_periods:.2f}')
print(f'minimum_recovery_periods: {min_rec}')
print(f'maximum_recovery_periods: {max_rec}')
merge_df.head()
Total_recovery_patients: 149
average_recovery_periods: 23.76
minimum_recovery_periods: 11
maximum_recovery_periods: 53
Out[33]:
Confirm_date Age Gender Address State Date rec_per age_grp rec_mask
Case_no
1 2020-03-23 36.0 Male Tedim Chin 2020-04-29 37 (30.0, 44.25] Over_30
2 2020-03-23 26.0 Male Hmawbi Yangon 2020-04-29 37 (15.75, 30.0] Over_30
3 2020-03-25 26.0 Male Insein Yangon 2020-04-09 15 (15.75, 30.0] Within_30
4 2020-03-27 33.0 Male Chanmyathazi Mandalay 2020-04-08 12 (30.0, 44.25] Within_30
6 2020-03-28 29.0 Male Insein Yangon 2020-04-28 31 (15.75, 30.0] Over_30


In [34]:
summary_gen_rec = merge_df.groupby('Gender')['rec_per'].describe()
summary_gen_rec
Out[34]:
count mean std min 25% 50% 75% max
Gender
Female 65.0 22.907692 8.266504 11.0 16.0 22.0 30.0 53.0
Male 84.0 24.416667 10.927150 12.0 15.0 20.5 32.0 53.0


In [35]:
fig, [(ax1, ax2), (ax3, ax4)]= plt.subplots(2, 2, figsize=(15, 10))
n2=7
for gen, ax in zip(["Male", "Female"], [(ax1, ax3), (ax2, ax4)]):
    temp_df = merge_df.loc[merge_df.Gender==gen]
    sns.boxplot(x= 'rec_per', y='Gender', data=temp_df, color='orange', ax=ax[0])
    _, rec_bin_edges = np.histogram(temp_df.rec_per, n2)
    temp_df.rec_per.plot.hist(bins=n2, color='steelblue', ax=ax[1], xticks=rec_bin_edges)
    ax[0].set_xlabel(None)
    ax[0].set_ylabel(None)
    ax[0].set_title(f'Box plot for {gen}', y=1.045)
    
    ax[1].set_xlabel('Recovery periods')
    ax[1].set_ylabel('Number of recovery patients' if ax[1]==ax3 else None)
    ax[1].set_title(f'Histogram for {gen}', y=1.045)

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.3)
fig.text(.5, 0.925, f'\nCOVID-19 recovery patients of Myanmar from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_12', fontdict={'size':'x-large', 'ha':'center'});


In [36]:
gen_age_summary = merge_df.groupby(['Gender', 'age_grp']).describe()
gen_age_summary
Out[36]:
Age rec_per
count mean std min 25% 50% 75% max count mean std min 25% 50% 75% max
Gender age_grp
Female (1.414, 15.75] 3.0 8.333333 1.527525 7.0 7.500 8.00 9.000 10.0 3.0 22.000000 6.082763 15.0 20.00 25.0 25.50 26.0
(15.75, 30.0] 24.0 23.916667 3.786896 18.0 21.000 23.50 27.250 30.0 24.0 20.958333 6.510721 13.0 15.75 21.0 23.50 39.0
(30.0, 44.25] 16.0 36.500000 4.604346 31.0 32.750 35.00 40.250 44.0 16.0 27.187500 10.931415 15.0 17.00 28.0 32.25 53.0
(44.25, 58.5] 13.0 52.307692 4.697244 45.0 49.000 52.00 57.000 58.0 13.0 22.461538 7.731056 11.0 15.00 22.0 30.00 35.0
(58.5, 72.75] 5.0 63.400000 3.577709 60.0 60.000 63.00 66.000 68.0 5.0 24.000000 8.746428 12.0 20.00 23.0 32.00 33.0
(72.75, 87.0] 4.0 81.250000 5.678908 75.0 77.250 81.50 85.500 87.0 4.0 18.250000 2.986079 15.0 16.50 18.0 19.75 22.0
Male (1.414, 15.75] 2.0 5.750000 6.010408 1.5 3.625 5.75 7.875 10.0 2.0 27.500000 2.121320 26.0 26.75 27.5 28.25 29.0
(15.75, 30.0] 24.0 23.541667 3.488854 17.0 20.750 24.00 26.000 30.0 24.0 23.791667 10.077867 13.0 15.00 21.0 31.00 46.0
(30.0, 44.25] 36.0 37.166667 4.319391 31.0 33.000 37.00 41.000 44.0 36.0 23.138889 11.182008 12.0 15.00 18.0 30.25 53.0
(44.25, 58.5] 13.0 51.307692 3.301126 46.0 49.000 52.00 54.000 57.0 13.0 24.307692 10.522869 14.0 15.00 20.0 34.00 43.0
(58.5, 72.75] 7.0 63.571429 2.299068 60.0 62.500 63.00 65.000 67.0 7.0 35.142857 11.495341 17.0 28.00 40.0 42.00 49.0
(72.75, 87.0] 2.0 78.500000 2.121320 77.0 77.750 78.50 79.250 80.0 2.0 15.000000 1.414214 14.0 14.50 15.0 15.50 16.0


In [37]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
sns.boxplot(x='age_grp', y='rec_per', hue='Gender', data=merge_df, palette=['steelblue', 'orange'], ax=ax)
ax.set_xlabel('Age groups\nFig_13')
ax.set_ylabel('Recovery periods')
ax.set_title(f'Recovery patients are analysed by Age groups and Gender', y=1.045)
ax.xaxis.set_label_coords(0.5, -0.07);


In [38]:
rec_gen_df = (merge_df.rec_mask.value_counts()/tot_recovery*100)
within_30 = rec_gen_df.loc['Within_30']
over_30 = rec_gen_df.loc['Over_30']
within_30, over_30
Out[38]:
(75.16778523489933, 24.832214765100673)


In [39]:
over30_df = merge_df.query('rec_per>30')
over30_df.head()
fig = plt.figure(figsize=(14, 6))
gs = gridspec.GridSpec(1, 2,width_ratios=[2,1])
ax1 = plt.subplot(gs[0])
ax2 = plt.subplot(gs[1])
overtemp = over30_df.State.value_counts(ascending=True)
ax1.bar(overtemp.index, overtemp, color='steelblue')
ax1.set_xticklabels(overtemp.index, rotation=45, ha='right')
for x, y in enumerate(overtemp):
    x = x-0.13 if y>10 else x-0.07
    yt = y-1.3 if y>1 else y-1
    ax1.text(x, yt, f'{y}', color='white')
sns.countplot(x='Gender', data=over30_df, ax=ax2, palette=['orange', 'steelblue'], order=['Female', 'Male'])
for name, ax in zip(['State', 'Gender'], (ax1, ax2)):
    ax.set_xlabel(None)    
    ax.set_ylabel('Number of recovery patients')
    ax.set_title(f'Recovery patients over 30 days by {name}', y=1.035)
    
plt.subplots_adjust(wspace=0.4)
fig.text(.5, 0.925, '\n')
fig.text(.5, -0.08, 'Fig_14', fontdict={'size':'x-large', 'ha':'center'});


In [40]:
st_name, st_value = overtemp.reset_index().iloc[-1]
print(st_name,st_value)
gender_over30_df = over30_df.Gender.value_counts()
male,female = gender_over30_df
print(male,female)
gender_over30_df
Yangon 29
25 12
Out[40]:
Male      25
Female    12
Name: Gender, dtype: int64


In [41]:
state_df = myan_df.State.value_counts().reset_index()
state_df.columns = 'State', 'Total'
state_min = state_df.Total.min()
state_max = state_df.Total.max()
state_df['Proportion'] = state_df.Total / number_of_patients * 100
state_df['norm'] = np.log(state_df.Total)
st_tot, st_prop = state_df.Total.iloc[0], state_df.Proportion.iloc[0]
state_df
Out[41]:
State Total Proportion norm
0 Yangon 178 73.553719 5.181784
1 Chin 10 4.132231 2.302585
2 Sagaing 9 3.719008 2.197225
3 Mandalay 8 3.305785 2.079442
4 Bago (West) 7 2.892562 1.945910
5 Nay Pyi Taw 6 2.479339 1.791759
6 Shan (South) 4 1.652893 1.386294
7 Rakhine 3 1.239669 1.098612
8 Shan (North) 3 1.239669 1.098612
9 Shan (East) 3 1.239669 1.098612
10 Magway 3 1.239669 1.098612
11 Ayeyarwady 2 0.826446 0.693147
12 Kayin 2 0.826446 0.693147
13 Kachin 1 0.413223 0.000000
14 Bago (East) 1 0.413223 0.000000
15 Mon 1 0.413223 0.000000
16 Tanintharyi 1 0.413223 0.000000


In [42]:
myan_map = folium.Map(location=[19.9940,96.0864],
                      tiles='StamenToner',
                      zoom_start=5)
folium.Choropleth(
    geo_data='myanmar(original).json',
    data=state_df,
    columns=['State', 'norm'],
    bins=4,
    key_on='feature.properties.ST',
    nan_fill_color='white',
    line_color='black',
    fill_color='Paired', 
    fill_opacity=1, 
    line_opacity=1,
    legend_name ='COVID-19',
    name="COVID-19 patients of each state",
    overlay=True,
    highlight = True).add_to(myan_map)
folium.LayerControl().add_to(myan_map)
myan_map.save('Myanmar_covid-19_map.html')
myan_map
Out[42]:


In [43]:
myan2_map = folium.Map([19.9940,96.0864],zoom_start=5)
cluster = plugins.MarkerCluster().add_to(myan2_map)
host_lst = ['Naypyitaw General Hospital', 'Kengtung General Hospital', 'Magway Regional Hospital',
            'Yangon General Hospital', 'Sagaing General Hospital', 'Pathein General Hospital', 'Thandwe District Hospital',
            'Hpa-An General Hospital']
host_lst2 = ['Mawlamyine General Hospital', 'Myitkyina General Hospital', 'Maungdaw General Hospital',
             'Toungup Township Hospital']
host_lst3 = ['South Okkalapa Specialist Hospital', 'Defence Services Liver Hospital' ]

for t in myan_df.reset_index().itertuples():
    html=f'''<div style="font-size:9pt; background-color:steelblue; color:white;">
                <div style="padding:3.5px 0; line-height:1.4;">
                    <b style="padding:0 7px;">Case_no
                        <span  style="padding: 0 1px 0 30.75px;">:</span>
                    </b>{t.Case_no:02d}<br>
                    <b style="padding:0 7px;">Age
                        <span  style="padding: 0 1px 0 54.35px;">:</span>
                    </b>{t.Age}<br>
                    <b style="padding:0 7px;">Gender
                        <span  style="padding: 0 1px 0 36px;">:</span>
                    </b>{t.Gender}<br>
                    <b style="padding:0 7px;">Condition
                        <span  style="padding: 0 1px 0 23.5px;">:</span>
                    </b>{t.Condition}<br>
                    <b style="padding:0 7px;">Address
                        <span  style="padding: 0 1px 0 33px;">:</span>
                    </b>{t.Address}<br>
                    <b style="padding:0 7px;">State
                        <span  style="padding: 0 1px 0 49px;">:</span>
                    </b>{t.State}<br>
                    <b style="padding:0 7px;">Hospital
                        <span  style="padding: 0 1px 0 32px;">:</span>
                    </b>{t.Hospital}<br>
                </div>
             </div>
          '''
    width = (304 if t.Hospital in host_lst3 else 282 if t.Hospital in host_lst2
                 else 271 if t.Hospital in host_lst else 251)
    ifram=folium.IFrame(html, width=width, height=135)
    popup=folium.Popup(ifram)
    icon=folium.Icon(color='green' if t.Condition == 'Recovery' else 'cadetblue' 
                                   if t.Condition != 'Death' else 'red')
    folium.Marker([t.Lat, t.Long], popup=popup, icon=icon).add_to(cluster)
myan2_map
Out[43]:



23-03-2020 မှ 07-06-2020 အထိမြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသောလူအရေအတွက်မှာ 242 ယောက်ဖြစ်ပြီး၊ 6 ဦးသေဆုံး၍ ရောဂါကင်းစင်သွားသူ 156 ဦးရှိပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသူများတွင် အသက် 1 နှစ် 6 လသည်အသက်အငယ်ဆုံးဖြစ်ပြီး အသက်အကြီးဆုံးမှာ 87 နှစ်ဖြစ်ကြောင်းတွေ့ရှိရသည်။တစ်နေ့လျှင်ပျမ်းမျှ 3.14 ယောက်ရောဂါကူးစက်ခံနေရပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါအတည်ပြုလူနာတွေ့ရှိရမှု့အနည်းဆုံးမှာ 11-05-2020 ရက်မှ 17-05-2020 အကြားဖြစ်ပြီး 4 ယောက်ဖြစ်ပါသည်။ အတည်ပြုလူနာတွေ့ရှိရမှု့အများဆုံးမှာ 13-04-2020 ရက်မှ 19-04-2020 အကြားဖြစ်ပြီးအရေအတွက်အားဖြင့် 72 ဖြစ်ကြောင်းတွေ့ရှိရသည်။

ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးအသက်အပိုင်းအခြားမှာ 18.6 မှ 35.7 နှစ်အကြားဖြစ်ပြီး 107 (44.21%) ယောက်ဖြစ်ပါသည်။ ဒုတိယအများဆုံးမှာ 35.7 မှ 52.8 နှစ်အကြားဖြစ်ပြီး 72 (29.75%) ယောက်ဖြစ်ပါသည်။ ရောဂါကူးစက်ခံရမှု့၏ 57.44% မှာအမျိုးသားများဖြစ်ပြီး အမျိုးသမီးများ၏ရောဂါကူးစက်ခံရနှုန်းမှာ 42.56% ဖြစ်ပါသည်။

အသက် 18 နှစ်မှအထက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 95.87% ဖြစ်ပြီး အသက် 18 နှစ်အောက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 4.13% ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကြောင့်သေဆုံးနှုန်းမှာ 2.48% ဖြစ်ပြီး ရောဂါပျောက်ကင်းမှု့နှုန်းမှာ 64.46% ကြောင်းတွေ့ရှိရသည်။ ရောဂါကူးစက်ခံရသူများ၏ 35.54% သည်ပြည်ပမှကူးစက်ခံရသူများဖြစ်ပြီး ပြည်တွင်းကူးစက်ခံရသောနှုန်းမှာ 64.46% ဖြစ်ကြောင်းလေ့လာတွေ့ရှိရပါသည်။ ရောဂါကူးစက်ခံရသူများ၏ 75.21% သည်အသွားအလာကန့်သတ်ထားသူများဖြစ်ပြီး 24.79% သည်အသွားအလာကန့်သတ်ထားခြင်းမရှိသူများဖြစ်ကြာင်းတွေ့ရှိရသည်။

မြန်မာနိင်ငံ၌ရောဂါကူးစက်ခံရသူအများဆုံးရှိသောဒေသမှာ ရန်ကုန်တိုင်းဒေသကြီးဖြစ်ပြီး 178 (73.55%) ယောက်ဖြစ်ပါသည်။ ရန်ကုန်တိုင်းဒေသကြီးတွင် အင်းစိန်မြို့နယ်သည် ရောဂါဖြစ်ပွါးမှု့အများဆုံးဖြစ်ပြီး အရေအတွက်အားဖြင့် 47 ယောက်ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါမဖြစ်ပွါးသောနေရာအဖြစ် ကယားပြည်နယ်သာကျန်ရှိတော့ကြောင်းကိုတွေ့ရှိရပါသည်။

မြန်မာနိင်ငံ၌ COVID-19 ရောဂါခံစားရသောလူနာများ ရောဂါကင်းစင်ဖို့ရန်ပျမ်းမျှကြာချိန်သည် 23.76 ရက်ဖြစ်ပါသည်။ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 11 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 53 ရက်ဖြစ်ကြောင်းတွေ့ရှိရပါသည်။ COVID-19 ရောဂါခံစားရသော အမျိုးသမီးများ၏ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်သည် 11 ရက်ဖြစ်ပြီး 53 ရက်သည်အမြင့်ဆုံးကြာချိန်ဖြစ်ကြောင်းတွေ့ရှိပါသည်။ အမျိုးသားများ၏ COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 12 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 53 ရက်ဖြစ်ပါသည်။ အသက်အုပ်စု (1.414, 15.75] တွင်အမျိုးသမီးများသည် အမျိုးသားများထက် ရောဂါလျင်မြန်စွာပျောက်ကင်းကြောင်းတွေ့ရှိရပြီး (72.75, 87.0] အုပ်စုတွင် အမျိုးသားများသည် အမျိုးသမီးများထက် ရောဂါပျောက်ကင်းမှု့မြန်ဆန်ကြောင်းတွေ့ရှိရသည်။ (30.0, 44.25] အသက်အုပ်စုသည် COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံး 12 ရက်ကြာမြင့်ပြီး အမြင့်ဆုံး 53 ရက်ကြာမြင့်ကြောင်းတွေ့ရှိရသည်။ (30.0, 44.25] သည်ရောဂါကင်းစင်ရန် ကြာချိန်အတိုင်းအတာအကျယ်ပြန့်ဆုံး အုပ်စုဖြစ်ကြောင်း တွေ့ရှိရသည်။ ယေဘူယျအားဖြင့်အမျိုးသမီးများသည် အမျိုးသားများထက် COVID-19 ရောဂါကင်းစင်မှု့မြန်ဆန်ကြောင်းတွေ့ရှိရသည်။

COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်း၏ 75.17% သည်ရက်သုံးဆယ်အတွင်ရောဂါပျောက်ကင်းပြီး 24.83% သည်ရက်သုံးဆယ်ကျော်မှ ရောဂါပျောက်ကင်းကြောင်း တွေ့ရှိရပါသည်။ ရက်သုံးဆယ်ကျော်မှ COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်းမှာ 37 ယောက်ဖြစ်ပြီး အမျိုးသား 25 ယောက်၊ အမျိုးသမီး 12 ယောက်ဖြစ်ကြောင်းတွေ့ရှိရသည်။ ရက်သုံးဆယ်ကျော်မှ COVID-19 ရောဂါပျောက်ကင်းသူအများစုသည် ရန်ကုန်တိုင်းဒေသကြီးမှဖြစ်ပြီး အရေအတွက်အားဖြင့် 29 ယောက်ဖြစ်ပါသည်။




မှတ်ချက်

  1. MOHS မှထုတ်ပြန်ချက်တွင် မည်သူ့ထံမှတဆင့်ရောဂါကူးစက်ခံရသည်ကို လူနာအမှတ်စဥ်ဖြင့်သော်လည်းကောင်း၊ လူနာအမှတ်စဥ်မပါ၍သော်လည်းကောင်းဖော်ပြလေ့ရှိပါသည်။ ထို့ကြောင့် တဆင့်ရောဂါကူးစက်ခံရမှု့ကိုဖော်ပြသောပုံသည် ရရှိသောသတင်းအချက်အလက်အပေါ်အခြေခံ၍ရေးဆွဲထားသောကြောင့် ပြည့်စုံသည်ဟုမဆိုနိင်ပါ။
  1. MOHS မှထုတ်ပြန်ချက်တွင် ရောဂါကင်းစင်သွားသူ 156 ဦးရှိသည်ဟုဖော်ပြသော်လည်း လူနာအမှတ်စဥ်ဖြင့်ဖော်ပြသည့်အရေအတွက်မှာ 149 ယောက်သာရှိပါသည်။ ထိုလူနာအမှတ်စဥ်များကိုဇယားတွင်ဖော်ပြထားပါသည်။
Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no
1 2 3 4 6 7 8 9 11 12 14 15 18
19 20 21 22 24 25 26 27 28 29 30 32 33
34 35 36 38 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60 61
62 63 64 65 66 67 68 69 70 71 72 73 74
75 77 78 79 81 82 83 84 85 87 88 89 90
91 92 93 95 96 97 98 99 102 103 104 105 106
107 108 109 112 114 115 116 117 118 119 120 121 122
125 126 127 128 132 134 138 141 142 143 144 145 146
147 150 151 153 154 156 157 164 165 167 168 171 172
174 178 179 180 181 183 184 185 186 189 191 192 193
194 195 196 197 198 199



  1. ECDC မှ COVID-19 နှင့်ပတ်သက်သောသတင်းအချက်အလက်အား မြန်မာစံတော်ချိန်ညနေ 06:00 ဝန်ကျင်၌ရယူခဲ့ပါသည်။
  1. 08-06-2020 03:30:00 AM အထိတစ်ကမ္ဘာလုံး၌ ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 6,916,233 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 400,135 ယောက်ဖြစ်ပါသည်။

Author: MIN KYAW ZAW
E-mail: minkyawzraw@gmail.com
LinkedIn: www.linkedin.com/in/minkyawzaw